package com.likou;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

/**
 * Author: 陈桂明
 * Date: 2025/3/29 21:10
 * Description: q128
 */
public class q128 {
    public static void main(String[] args) {
        int[] nus = new int[]{100, 4, 200, 1, 3, 2};
        int i = new q128().longestConsecutive(nus);
        System.out.println(i);
    }

    public int longestConsecutive(int[] nums) {

        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            set.add(num);
        }

        int len = 0;
        for (int num : set) {
            if (set.contains(num - 1)) {
                continue;
            }

            int l = 1;
            for (int i = 1; i < set.size(); i++) {
                if (set.contains(num + i)) {
                    l++;
                } else {
                    break;
                }
            }

            // if (l > len) {
            //     len = l;
            // }
            if (l >= set.size() / 2 + 1) {
                len = l;
                break;
            }
            len = Math.max(l, len);

        }

        return len;
    }

    // public int longestConsecutive(int[] nums) {
    //     if (nums.length < 1) return nums.length;
    //     Arrays.sort(nums);
    //
    //     int res = 1;
    //     int cur = 1;
    //
    //     for (int i = 1; i < nums.length; i++) {
    //         if (nums[i] == nums[i - 1]) {
    //             continue;   // 去重，计数暂停
    //         } else if (nums[i] == nums[i - 1] + 1) {
    //             cur++;  // 连续计数中
    //         } else {
    //             res = Math.max(cur, res);   // 计数停止，更新结果
    //             if (res >= nums.length / 2 + 1) {
    //                 break;
    //             }
    //             cur = 1;    // 重新计数
    //         }
    //     }
    //     res = Math.max(cur, res);
    //     return res;
    // }
}
